"""
演示RDD的map成员方法的使用
"""

from pyspark import SparkContext, SparkConf
import os

# 告诉spark本机Python的安装位置
os.environ['PYSPARK_PYTHON'] = "D:/Software/Work/miniconda3/python.exe"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([1, 2, 3, 4, 5])
print(f"rdd：{rdd.collect()}")

# 通过map方法将全部数据乘以10
# def func(data: int) -> int:
#     return data * 10


# 调用map方法，传入func函数名，map会将collect()中的元素逐个调用func，逐个传入func中
# rdd2 = rdd.map(func)
rdd2 = rdd.map(lambda x: x * 10)
# (T) -> U

print(f"rdd2：{rdd2.collect()}")

# 链式调用
rdd3 = rdd.map(lambda x: x * 10).map(lambda x: x + 5)
print(f"rdd3：{rdd3.collect()}")

sc.stop()